package com.svms.save.vo;


public class ResultVo<T> {
	
	/**
	 * 成功
	 */
	public static final String SUCCESSS = "0";
	/**
	 * 系统错误
	 */
	public static final String SYSTEM_ERROR = "1";
	/**
	 * 业务错误
	 */
	public static final String BUSINESS_ERROR = "2";
	/**授权错误*/
	public static final String LICENSE_ERROR = "3";
	/**登录错误*/
	public static final String LOGIN_ERROR = "4";
	/**响应代码，0-无异常，1-系统错误，2-业务错误*/
	private String code;
	/**提示信息*/
	private String msg;
	/**响应数据，根据接口不同返回的数据也会不同*/
	private T data;
	
	public String getCode() {
		return code;
	}
	public void setCode(String code) {
		this.code = code;
	}
	public String getMsg() {
		return msg;
	}
	public void setMsg(String msg) {
		this.msg = msg;
	}
	public T getData() {
		return data;
	}
	public void setData(T data) {
		this.data = data;
	}
	public ResultVo() {
		// TODO Auto-generated constructor stub
	}
	
	/**
	 * 
	 * <p>Title: 成功</p>  
	 * <p>Description: </p>
	 * @author xuyang
	 * @date 2019年7月2日
	 * @param msg	提示信息
	 * @param data	响应数据
	 * @return
	 */
	public static ResultVo success(String msg,Object data) {
		return createResultVo(SUCCESSS,msg,data);
	}
	/**
	 * 
	 * <p>Title: 错误</p>  
	 * <p>Description: </p>
	 * @author xuyang
	 * @date 2019年7月2日
	 * @param msg	提示信息
	 * @param data	相应数据
	 * @return
	 */
	public static ResultVo systemError(String msg,Object data) {
		return createResultVo(SYSTEM_ERROR,msg,data);
	}
	/**
	 * 
	 * <p>Title: 业务错误</p>  
	 * <p>Description: </p>
	 * @author xuyang
	 * @date 2019年7月2日
	 * @param msg
	 * @param data
	 * @return
	 */
	public static ResultVo businessError(String msg,Object data) {
		return createResultVo(BUSINESS_ERROR,msg,data);
	}
	
	/**
	 * 
	 * <p>Title: 创建响应客户端对象</p>  
	 * <p>Description: </p>
	 * @author xuyang
	 * @date 2019年7月2日
	 * @param code		响应代码
	 * @param msg		提示信息
	 * @param metaData	头信息
	 * @param data		具体数据信息
	 * @return
	 */
	public static ResultVo createResultVo(String code,String msg,Object data) {
		ResultVo resultVo = new ResultVo();
		resultVo.setCode(code);
		resultVo.setMsg(msg);
		resultVo.setData(data);
		return resultVo;
	}
}
